//
// Created by A on 2018/9/18.
//

#ifndef LIBRARY_LIST_H
#define LIBRARY_LIST_H

typedef struct _Node
{
    void* data;
    struct _Node *next;
} Node;

typedef  struct _List
{
    Node* head;
    int len;
    Node* tail;
} List;

List* list_new();

int list_len(List* list);

void list_append(List* list , void* data);

void list_insertAt(List* list , void*data , int index);

void* list_getAt(List* list , int index);

void* list_removeAt(List* list , int index);

void list_delete(List** list);

#endif //LIBRARY_LIST_H
